import Vue from "vue";
import Vuex from "vuex";
import settingModule from "@/store/setting.js"

Vue.use(Vuex);

const store = new Vuex.Store({
    state:{
      version:"2.2.9",//版本号
      nwOb:[],//打开的窗口对象列表
      winType:"new",//打开的窗口类型,默认未new,index为主窗口

      useName:"管理员",//登录当前用户的真实姓名

      useType:"lose",//lose为一般登录用户，superMan为超级管理员
      company:1,//所属单位

      //园区列表(经过权限过滤后的)
      parkList:[],
      parkAllList:[],
      park_id:"",//页面显示的park
      park_name:"",
      //例子
      //testData:false,
    },
    getters:{
       //例子
      /* getParams:state => {
          return state.testData;
       },
     */
    },
    mutations:{
      setCompany(state,com){
        state.company = com
      },
      setUseType(state,type){
        state.useType = type
      },

      //例子
      /* setFn(state, value=false){
         state.testData = value;
      }, */
      setParkId(state, parkid){
        state.park_id = parkid
      },
      setParkName(state, parkname){
        state.park_name= parkname
      },
      //parkArr[0] 为全部园区,parkArr[1] 为真正可以加入的园区
      //parkArr[2] 决定是否当parkArr[1]为空时,把所有园区都记录到state.parkList中
      setParkList(state, parkArr){
        state.parkList = [];
        state.parkAllList = [];
        for(var i in parkArr[0]){
          if(parkArr[1].length == 0 && parkArr[2]){//空数组,直接放进去
            state.parkList.push(parkArr[0][i]);
          }else{
            for(let j in parkArr[1]){
              if(parkArr[0][i].park_id == parkArr[1][j].park_id ){
                state.parkList.push(parkArr[0][i]);
                break;
              }
            }
          }
          //所有园区列表存放处
          state.parkAllList.push(parkArr[0][i]);
        }
        state.park_id = state.parkList[0].park_id;
        state.park_name = state.parkList[0].park_name;
      },
      //增加nw窗口对象到nwOb中
      setNwOb(state,ob){
        state.nwOb.push(ob);
      },
      //设置窗口类型
      setWinType(state,value="index"){
        state.winType = value;
      },
      //设置useName
      setUseName(state,value="管理员"){
        state.useName = value
      }


    },
    actions:{
      //例子
      /* goodsAddFn({ commit }, Arr){
         commit("setFn", Arr);
      }, */

    },
    modules:{
      set:settingModule,
    },
})

export default store
